import {message} from 'antd'
// 导入nprogress，添加进度条，隐藏进度环，导入css样式，拦截请求与响应
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
// 导入axios
import axios from 'axios'
// 隐藏进度环
NProgress.configure({ showSpinner: false })
// 创建实例
const request = axios.create({
  baseURL:"http://dida100.com:8888",
  timeout:5000
})
// 拦截请求与响应
request.interceptors.request.use(config=>{
  // 添加请求头
  config.headers["Authorization"] = "Bearer "+sessionStorage.getItem("token");
  // 显示进度条
  NProgress.start();
  return config;
})
// 响应拦截
request.interceptors.response.use(response=>{
  // 隐藏进度条
  NProgress.done();
  // 对请求成功的处理 200 0
  if(response.data.code!=0&&response.data.code!=200){
    message.error(response.data.msg||"请求失败")
  }
 
  return response;
},error=>{
  // 对请求失败的处理401，500
  if(error.response.status===401){
    message.error("登录过期，请重新登录")
    sessionStorage.clear();
    window.location.href="#/"
  }
  if(error.response.status===500){
    message.error("服务器错误")

  }
  // 处理404
  if(error.response.status===404){
    message.error("请求地址错误")
  }
  // 隐藏进度条
  NProgress.done();
  return Promise.reject(error);
})
// 导出
export default request;